﻿// 3437. 打印极值点下标.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <vector>


using namespace std;
/*
https://www.acwing.com/problem/content/3440/

在一个整数数组上，对于下标为 i 的整数，如果它大于所有它相邻的整数， 
或者小于所有它相邻的整数，则称为该整数为一个极值点，极值点的下标就是 i。

现在给定整数数组，请你找到所有极值点，并输出这些极值点的下标。

输入格式
第一行包含整数 N表示数组中包含的整数个数。

第二行包含 N 个整数，表示数组中的元素。

数组中的元素的下标依次为 0∼N−1。

输出格式
共一行，按从小到大的顺序输出所有极值点的下标。

数据范围
1≤N≤100
,
1≤
 数组中的元素值 ≤1000
输入样例：
10
10 12 12 11 11 12 23 24 12 12
输出样例：
0 7
*/

vector<int> ans;
const int N = 200;
int a[N];
int n;

int main()
{
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}

	a[0] = a[2]; a[n + 1] = a[n - 1];

	for (int i = 1; i <= n; i++) {
		if (a[i] > a[i - 1] && a[i] > a[i + 1]) {
			ans.push_back(i-1);
		}
		if (a[i] < a[i - 1] && a[i] < a[i + 1]) {
			ans.push_back(i - 1);
		}
	}

	for (int i = 0; i < ans.size(); i++) {
		cout << ans[i] << " ";
	}
	cout << endl;

	return 0;
}

 